Skip to content

1.3.0 release#478

Merged
StefanBratanov merged 31 commits into
masterfrom
1.3.0
May 20, 2026
Merged

1.3.0 release#478
StefanBratanov merged 31 commits into
masterfrom
1.3.0

Conversation

@StefanBratanov
Copy link
Copy Markdown
Collaborator

No description provided.

ianopolous and others added 30 commits April 11, 2025 12:26
Quic secure transport implementation

---------

Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Relay local/remote multiaddress retrieval to Transport implementations to get rid of subclass checks
* chore: add or force update .github/workflows/stale.yml

* chore: add or force update .github/workflows/generated-pr.yml
---------

Co-authored-by: Anton Nashatyrev <Nashatyrev@users.noreply.github.com>
fixed the problem of openjdk images being gone
* Updated rpc protobuf definition for partial messages

* fix spaces

* fix typo
…xChannel.doWrite (#455)

In Netty 4.2.x the original code's throw+catch pattern caused the exception to
escape doWrite() uncaught, surfacing as spurious "PLEASE FIX OR REPORT" noise in
Teku logs. The throw was caught locally, but buf.remove(cause) — called from the
catch block without its own guard — can propagate exceptions back through
promise-listener callbacks in certain Netty versions.

Fix: move the localDisconnected check outside the try/catch and wrap the
buf.remove(cause) call defensively so nothing can escape doWrite(). Pending write
promises are still properly failed with ConnectionClosedException.
* Update dependencies

Plugins:
- com.diffplug.spotless 6.25.0 -> 7.2.1
- io.spring.dependency-management 1.1.6 -> 1.1.7
- me.champeau.jmh 0.7.2 -> 0.7.3
- com.google.protobuf (gradle) 0.9.4 -> 0.9.5
- Gradle wrapper 8.10.2 -> 8.14.3

Libraries:
- log4j 2.24.1 -> 2.25.4
- junit-jupiter 5.11.3 -> 5.13.4
- junit-platform 1.13.4 (new explicit dependency)
- assertj-core 3.26.3 -> 3.27.4
- protobuf-java 3.25.5 -> 4.32.1
- netty 4.2.5.Final -> 4.2.12.Final
- netty-tcnative-boringssl-static 2.0.73.Final -> 2.0.76.Final
- bouncycastle 1.78.1 -> 1.80
- guava 33.3.1-jre -> 33.4.8-jre
- slf4j-api 2.0.9 -> 2.0.17
- ktlint version pinned to 1.1.1

Other:
- Remove jmh from explicit dependencies (managed by me.champeau.jmh plugin)
- Use ParameterizedInvocationConstants.INDEX_PLACEHOLDER (junit 5.13+)
- Remove dead commented-out debug code in GossipScoreBenchmark

* Fix detekt failing on JVM 21

detekt 1.22.0 only accepts jvmTarget up to 18, so it fails when Gradle
runs on Java 21. Explicitly setting jvmTarget = "11" on the Detekt tasks
matches the project's configured Kotlin target and unblocks the check.

detekt 1.23.x would fix this properly but requires Kotlin 1.9+, which
is a separate upgrade.

* Revert slf4j and bouncycastle upgrades for Android compatibility

AGP 7.4.2's D8 dexer cannot process the newer bytecode format used by
slf4j-api 2.0.17 and bouncycastle 1.80, causing the android-chatter
example module to fail to build. Reverting to versions compatible with
the old D8 toolchain.

Unblocked once AGP is upgraded (tracked in #458 as part of Kotlin 2.x work).

* Revert guava upgrade for Android compatibility

guava 33.4.8-jre transitively brings in error_prone_annotations 2.36.0,
which AGP 7.4.2's D8 dexer cannot process. Reverting to 33.3.1-jre
which pulls in 2.28.0, the previously working version.

Unblocked once AGP is upgraded (tracked in #458).

* Revert protobuf upgrade for Android compatibility

protobuf-java 4.32.1 generates bytecode that AGP 7.4.2's D8 dexer
cannot process (IdentifyOuterClass and similar generated classes fail
to dex). Reverting to 3.25.5 (the current develop version) restores
Android compatibility.

protobuf 4.x can be revisited once AGP is upgraded (tracked in #458).

* Change Netty version in versions.gradle

Updated Netty version from 4.2.12.Final to 4.2.10.Final.
Captures the MVP scope, jvm-libp2p/client responsibility boundary,
client-facing API, routing semantics, per-group lifecycle and DoS
caps, and the implementation plan for the gossipsub partial-messages
extension. Lands ahead of implementation so sub-issues of #435 can
reference a stable design anchor.
Add paths-ignore filters to build and publish workflows so pushes and
PRs that only touch markdown files, docs/, license files, .gitignore,
or issue templates do not trigger a full build.
…TWANT (#472)

GossipRouter.subscribe() seeded the new mesh from fanout/other peers
filtered by score and direct-peer status only, omitting the !isBackOff
check that the heartbeat-driven mesh maintenance paths apply. When a
local subscribe followed a recent PRUNE (e.g. attestation-subnet
rotation right after the remote pruned us), the router immediately
GRAFTed the still-backed-off peer, accumulating P7 behaviour penalties
on the remote scorer until the peer score crossed the disconnect
threshold. Mirror the JOIN path in go-libp2p-pubsub by filtering
backed-off peers out of both seed lists.

Also make supportsBackoffAndPX() and supportsIDontWant() cumulative
across GossipSub versions: v1.3 is a strict superset of v1.2 and v1.1,
so a router negotiating /meshsub/1.3.0 must continue to honour PRUNE
backoff, peer exchange, and IDONTWANT. Previously the exact-match
checks silently disabled all three for v1.3 routers.
@StefanBratanov StefanBratanov changed the title 1.3.0 1.3.0 release May 20, 2026
@StefanBratanov StefanBratanov merged commit 3103a1b into master May 20, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.